// Same as Object.assign() but with type inference
export function objectAssign<Obj extends object, ObjAddendum>(
  obj: Obj,
  objAddendum: ObjAddendum
): asserts obj is Obj & ObjAddendum {
  Object.assign(obj, objAddendum)
}


export function getAssetsPath(path: string): string {
  return new URL(`../assets/${path}`, import.meta.url).href
}



export function saveTxt(content: string,fileName:string="example.txt",fileType="text/plain;charset=utf-8") {
  console.info("saveTxt", content)
  if (!content) {
    return
  }
  // 创建一个Blob对象来表示数据，这里的{type : 'text/plain'}指定了数据类型为纯文本  
  const blob = new Blob([content], { type: fileType });
  // 使用createObjectURL创建一个指向该blob的URL  
  const url = URL.createObjectURL(blob);
   // 创建一个a标签用于下载  
   const a = document.createElement('a');  
   a.href = url;  
   // 设置下载的文件名  
   a.download = fileName;  
   // 触发点击，实现下载  
   document.body.appendChild(a);  
   a.click();  
   // 清理：从文档中移除a标签，并释放URL对象  
   document.body.removeChild(a);  
   URL.revokeObjectURL(url);  
}